Please enable JavaScript to view this website.

Skip to main content

Asset Scan Payload Reference

info

This page summarizes the payload structure for quick reference. The Asset Scan Ingest API spec is the authoritative source — if anything conflicts, the spec wins.

Top-level fields

FieldTypeRequiredNotes
timestampintegerYesUnix epoch seconds
mpbidstringYes5-byte hex (10 chars), 0x prefix accepted
locationobjectYesAt least one of gnssFix or lteInfo
xAdsobjectYesMust contain a non-empty data array
sessionIdintegerNoScan session identifier
dryRunbooleanNoIf true, skips Tool Location Services submission (testing only)

Location

Provide at least one location source. GNSS is preferred; the backend uses LTE cell tower positioning as a fallback if no GNSS fix is present.

GNSS fix (location.gnssFix):

FieldTypeRequiredNotes
latnumberYesMagnitude only — non-negative
latDirstringYes"N" or "S"
lonnumberYesMagnitude only — non-negative
lonDirstringYes"E" or "W"
fixQualityintegerNoGPS quality indicator
satellitesintegerNoNumber of satellites in use
hDopnumberNoHorizontal dilution of precision
altitudeMslnumberNoAltitude above mean sea level (meters)
Coordinate format

Coordinates use magnitude + direction, not signed decimal degrees. lat: 43.05, latDir: "N" is valid. lat: -43.05 is not — negative latitudes will fail validation.

LTE towers (location.lteInfo.lte — array):

FieldTypeRequiredNotes
mccintegerYesMobile Country Code
mncintegerYesMobile Network Code
eutranCidintegerYesE-UTRAN Cell Identifier
tacintegerNoTracking Area Code
rsrpnumberNoReference Signal Received Power (dBm)
rsrqnumberNoReference Signal Received Quality (dB)

BLE Advertisements (xAds.data — array)

Each entry represents one scanned device:

FieldTypeRequiredNotes
xAdstringYesRaw BLE advertisement, hex-encoded, max 62 chars (31 bytes)
timeSeenintegerYesUnix epoch seconds when the advertisement was captured
rssiintegerYesReceived signal strength in dBm
macstringNoBLE MAC address of the scanned device

The backend parses each xAd to extract the Milwaukee manufacturer payload (company code 0x0165) and tool MPBID. Advertisements that are oversized, contain invalid hex, or don't carry a recognized Milwaukee payload are skipped silently — they don't fail the entire message.

Example

{
"timestamp": 1705312200,
"mpbid": "0191000001",
"location": {
"gnssFix": {
"lat": 43.0451,
"latDir": "N",
"lon": 87.9099,
"lonDir": "W",
"fixQuality": 3,
"satellites": 6,
"hDop": 1.58
}
},
"xAds": {
"data": [
{
"xAd": "0201060303F5FD17FF650101840000...",
"timeSeen": 1705312195,
"rssi": -78,
"mac": "AA:BB:CC:DD:EE:FF"
}
]
}
}